﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;

namespace appLibrary
{
   public  class ClassRead
    {

        public static bool readXML(string  fileName, ref string  strServer, ref string strPort , ref string strDatabase, ref string strUser,
            ref string strPWD){

             XmlDocument xDoc = new XmlDocument();
             try
             {



                 //La ruta del documento XML permite rutas relativas
                 //respecto del ejecutable!
                 string path = System.AppDomain.CurrentDomain.BaseDirectory;
                
                 xDoc.Load(@"" + path + "\\" + fileName);

                 XmlNodeList configuration = xDoc.GetElementsByTagName("configuration");

                 XmlNodeList lista = ((XmlElement)configuration[0]).GetElementsByTagName("appsettings");

                 foreach (XmlElement nodo in lista)
                 {

                     int i = 0;

                     XmlNodeList nServer =
                     nodo.GetElementsByTagName("server");
                     strServer = nServer[i].InnerText;

                     XmlNodeList nPort =
                     nodo.GetElementsByTagName("port");
                     strPort = nPort[i].InnerText;

                     XmlNodeList nDatabase =
                     nodo.GetElementsByTagName("database");
                     strDatabase = nDatabase[i].InnerText;

                     XmlNodeList nUser =
                     nodo.GetElementsByTagName("user");
                     strUser = nUser[i].InnerText;

                     XmlNodeList nPWD =
                     nodo.GetElementsByTagName("pwd");
                     strPWD = nPWD[i].InnerText;



                     // Console.WriteLine("Elemento nombre ... {0} {1} {2}", 
                     //                             nNombre[i].InnerText,
                     //                            nApellido1[i].InnerText,
                     //                           nApellido2[i++].InnerText);


                 }
                 return true;

             }
             catch (Exception e)
             {

                 Log.eLog(strUser, "Problemas al leer el archivo xml de configuración:" + e);
                 return false;

             }
             finally
             {
                 xDoc = null;
             }
    }




        public static bool readPrefijo(string fileName, ref string strPrefPerf, ref string strPrefAcerreo, string strUser)
        {
       
        
             XmlDocument xDoc = new XmlDocument();
             try
             {



                 //La ruta del documento XML permite rutas relativas
                 //respecto del ejecutable!
                 string path = System.AppDomain.CurrentDomain.BaseDirectory;
                 xDoc.Load(@"" + path + "\\" + fileName);

                 XmlNodeList configuration = xDoc.GetElementsByTagName("configuration");

                 XmlNodeList lista = ((XmlElement)configuration[0]).GetElementsByTagName("appsettings");

                 foreach (XmlElement nodo in lista)
                 {

                     int i = 0;

                    XmlNodeList nUser =
                     nodo.GetElementsByTagName("pre-equip-perf");
                     strPrefPerf = nUser[i].InnerText;

                     XmlNodeList nPWD =
                     nodo.GetElementsByTagName("pre-equip-acar");
                     strPrefAcerreo = nPWD[i].InnerText;
   


                 }
                 return true;

             }
             catch (Exception e)
             {

                 Log.eLog(strUser, "Problemas al leer el archivo xml de configuración para recuperar los prefijos de equipos :" + e);
                 return false;

             }
             finally
             {
                 xDoc = null;
             }
        }


        public static bool getPrefDinamico(string fileName, ref string strPref,  string strPrefNode, string strUser)
        {


            XmlDocument xDoc = new XmlDocument();
            try
            {



                //La ruta del documento XML permite rutas relativas
                //respecto del ejecutable!
                string path = System.AppDomain.CurrentDomain.BaseDirectory;
                xDoc.Load(@"" + path + "\\" + fileName);

                XmlNodeList configuration = xDoc.GetElementsByTagName("configuration");

                XmlNodeList lista = ((XmlElement)configuration[0]).GetElementsByTagName("appsettings");

                foreach (XmlElement nodo in lista)
                {

                    int i = 0;

                    XmlNodeList nUser =
                    nodo.GetElementsByTagName(strPrefNode);
                    strPref = nUser[i].InnerText;
           



                }
                return true;

            }
            catch (Exception e)
            {

                Log.eLog(strUser, "Problemas al leer el archivo xml de configuración para recuperar prefijo:" + e);
                return false;

            }
            finally
            {
                xDoc = null;
            }
        }

   
   
   }

}
